/**spring-cloud-loadbalancer+OpenFeign
 * 1）依赖库：SpringCloud版本为2020.0.0及以上，核心依赖为spring-cloud-starter-loadbalancer、spring-boot-starter-web
 *          spring-boot-starter-webflux和spring-cloud-starter-openfeign
 * 2）在main上注解@EnableFeignClients，@LoadBalancerClient可选用于增加单独配置文件
 * 3）定义Interface，并注解@FeignClient（必须），其中服务名大小写均有效，但要与yml中的服务名一致。可用configuration属性增加单独配置文件（公共@configurayion文件或main文件）
 * 4）在@configuration文件中定义服务器列表、负载均衡策略和Feign相关属性
 * 5）注入上述Interface，用interface中的方法调用微服务（consummer controller文件）
 */
package com.example.demofeignclientwithouteurekalb;

import feign.RequestLine;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.FeignClient;
import java.util.Map;


@SpringBootApplication
@EnableFeignClients
@LoadBalancerClient(name = "userlogin", configuration = ApplicationConf.class)
public class DemoFeignClientWithoutEurekaLbApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoFeignClientWithoutEurekaLbApplication.class, args);
    }


    @FeignClient(name="userlogin",configuration = ApplicationConf.class)
    public interface UserloginService{
        //@RequestMapping(value = "/login",method = RequestMethod.GET)
        @RequestLine("GET /login")
        Map myUserlogin();
    }

}